package com.qining618.cms.ucenter.domain;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.qining618.common.model.AuthUser;
import com.qining618.common.utils.StringUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 登录凭证管理
 * </p>
 *
 * @author qining
 * @date 2019-09-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("o_token")
public class Token implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户id
     */
    @TableField("`user_id`")
    private Long userId;

    /**
     * 凭证
     */
    @TableField("`access_token`")
    private String accessToken;

    /**
     * 认证信息
     */
    @TableField("`auth_info`")
    private String authInfo;

    /**
     * 过期时间
     */
    @TableField("`expire_time`")
    private Date expireTime;

    /**
     * 创建时间
     */
    @TableField("`ctime`")
    private Date ctime;

    /**
     * 修改时间
     */
    @TableField("`mtime`")
    private Date mtime;


    public AuthUser getAuthUser() {
        if (StringUtils.isNotBlank(getAuthInfo())) {
            return JSON.parseObject(getAuthInfo(), AuthUser.class);
        }
        return null;
    }

}
